package command;

import org.uc3m.ed.factory.panel.FactoriaPanel;
import org.uc3m.ed.implementacion.ComandoUtilizado;
import org.uc3m.ed.implementacion.Command;
import org.uc3m.ed.interfaz_grafica.ventana.PanelDibujo;
import org.uc3m.ed.interfaz_grafica.ventana.VentanaPrincipal;
import org.uc3m.ed.tad.lista.Cola;

public class CommandExtraer implements Command {

	
	
	public void execute() {
		try{
			
			PanelDibujo panel=FactoriaPanel.metodoFactoria();
			Cola<Integer> cola=(Cola<Integer>) panel.getEstructura();
			VentanaPrincipal.getConsola().limpiarConsola();
			if(cola!=null)
			{
				if(cola.extraer()!=null)
				{
					panel.getPilaComandos().push(new ComandoUtilizado("E",""));
					panel.setEstructura(cola);
				}else
					VentanaPrincipal.getConsola().escribirTextoError("CLASS::Cola::CommandExtraer ERROR::4\n   Error al extraer un elemento de la cola");
				panel.setDimensionDefecto();
				panel.repaint();
			}else
				VentanaPrincipal.getConsola().escribirTextoError("CLASS::Cola::CommandExtraer ERROR::3\n   Debes crear una Cola antes de extraer un nodo");
		}catch(Exception e){
			VentanaPrincipal.getConsola().escribirTextoError("CLASS::Cola::CommandExtraer ERROR::1::"+e.toString()+"\n",e.getStackTrace());
		}catch(Error e){
			VentanaPrincipal.getConsola().escribirTextoError("CLASS::Cola::CommandExtraer ERROR::2::"+e.toString()+"\n",e.getStackTrace());
		}
	}

}
